package cn.tedu.csmall.product.service;

import cn.tedu.csmall.product.pojo.param.CategoryAddNewParam;
import cn.tedu.csmall.product.pojo.param.CategoryUpdateInfoParam;
import cn.tedu.csmall.product.pojo.vo.CategoryListItemVO;
import cn.tedu.csmall.product.pojo.vo.CategoryStandardVO;
import cn.tedu.csmall.product.pojo.vo.CategoryTreeItemVO;

import java.util.List;

public interface ICategoryService {

    // 新增分类
    void addNew(CategoryAddNewParam categoryAddNewParam);
    // 删除分类
    void delete(Long id);
    // 修改分类
    void update(Long id, CategoryUpdateInfoParam categoryUpdateInfoParam);

    // 根据ID查询分类详情
    CategoryStandardVO getStandardById(Long id);

    // 根据父类ID查询子类列表
    List<CategoryListItemVO> listByParentId(Long parentId);

    // 类别“是否启用”的状态文本
    String ENABLE_TEXT[] = {"禁用", "启用"};

    // 类别“是否显示在导航栏”的状态文本
    String DISPLAY_TEXT[] = {"隐藏", "显示"};

    // 启用类别
    void setEnable(Long id);

    // 禁用类别
    void setDisable(Long id);

    // 显示类别
    void setDisplay(Long id);

    // 隐藏类别
    void setHidden(Long id);

    // 获取所有类别形成的“树”
    List<CategoryTreeItemVO> listTree();
}
